#pragma once
#include<opencv2/core.hpp>
#include<vector>
using namespace cv;
enum XTaskType
{
	XTASK_NONE,
	XTASK_GAIN,

};
struct XTask
{
	XTaskType type;
	std::vector<double> para;
};

class XFilter
{
public:
	virtual Mat filter(Mat mat1,Mat mat2) =0;
	virtual void add(XTask task) = 0;
	virtual void clear()=0;
	virtual ~XFilter();
	static XFilter *Get();

protected:
	XFilter();
};

